Zip for WinRT > Zip for WinRT Fundamentals > High Level: C1ZipFile, C1ZipEntry and C1ZipEntryCollection Classes |
These are the highest level classes in the C1Zip library. They allow you to create and manage zip files. Using zip files to store application data provides the following benefits:
C1ZipFile Class
The C1ZipFile class encapsulates a zip file. After you create a C1ZipFile object, you can attach it to an existing zip file or tell it to create a new empty zip file for you.
The code below creates a zip file called sources.zip and adds all files with a "cs" extension to the zip file:
C# |
Copy Code
|
---|---|
// get path for zip file and files to compress string path = Application.ExecutablePath; int pos = path.IndexOf(@"\bin"); path = path.Substring(0, pos + 1); // create a zip file C1ZipFile zip = new C1ZipFile(); zip.Create(path + "source.zip"); // add all files with extension cs to the zip file foreach (string fileName in Directory.GetFiles(path, "*.cs")) zip.Entries.Add(fileName); // show result foreach (C1ZipEntry ze in zip.Entries) { Console.WriteLine("{0} {1:#,##0} {2:#,##0}", ze.FileName, ze.SizeUncompressed, ze.SizeCompressed); } |
C1ZipEntryCollection Class
After you have created or opened a zip file, use the C1ZipFile.Entries collection to inspect the contents of the zip file, or to add, expand, and delete entries. For example:
Visual Basic |
Copy Code
|
---|---|
myZip.Entries.Add(stream1, "MyData.txt") myZip.Entries.Add(stream2, "MyData.xml") Dim zipEntry As C1ZipEntry For Each zipEntry In myZip.Entries Console.WriteLine(zipEntry.FileName) Next zipEntry |
C# |
Copy Code
|
---|---|
myZip.Entries.Add(stream1, "MyData.txt"); myZip.Entries.Add(stream2, "MyData.doc"); foreach (C1ZipEntry zipEntry in myZip.Entries) Debug.WriteLine(zipEntry.FileName); |
C1ZipEntry Class
The C1ZipEntry class exposes properties and methods that describe each entry, including its original file name, size, compressed size, and so on. It also has a C1ZipEntry.OpenReader method that returns a stream object, so you can read the entry contents without expanding it first.